int cpu, rc;
struct task_struct *idle;
- if (max_cpus == 0)
- return;
+ cpu_data[0] = boot_cpu_data;
+
+ cpu_2_logical_apicid[0] = 0;
+ x86_cpu_to_apicid[0] = 0;
+
+ current_thread_info()->cpu = 0;
+ cpu_sibling_map[0] = cpumask_of_cpu(0);
+ cpu_core_map[0] = cpumask_of_cpu(0);
- xen_smp_intr_init(0);
+ if (max_cpus != 0)
+ xen_smp_intr_init(0);
for (cpu = 1; cpu < max_cpus; cpu++) {
rc = HYPERVISOR_vcpu_op(VCPUOP_is_up, cpu, NULL);
}
/* Currently, Xen gives no dynamic NUMA/HT info. */
- for (cpu = 0; cpu < NR_CPUS; cpu++) {
- cpus_clear(cpu_sibling_map[cpu]);
- cpus_clear(cpu_core_map[cpu]);
+ for (cpu = 1; cpu < NR_CPUS; cpu++) {
+ cpu_sibling_map[cpu] = cpumask_of_cpu(cpu);
+ cpu_core_map[cpu] = cpumask_of_cpu(cpu);
}
#ifdef CONFIG_X86_IO_APIC
cpu_possible_map = cpumask_of_cpu(0);
cpu_present_map = cpumask_of_cpu(0);
cpu_online_map = cpumask_of_cpu(0);
-
- cpu_data[0] = boot_cpu_data;
- cpu_2_logical_apicid[0] = 0;
- x86_cpu_to_apicid[0] = 0;
-
- current_thread_info()->cpu = 0;
- cpus_clear(cpu_sibling_map[0]);
- cpu_set(0, cpu_sibling_map[0]);
-
- cpus_clear(cpu_core_map[0]);
- cpu_set(0, cpu_core_map[0]);
}
static void vcpu_hotplug(unsigned int cpu)